// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.idea.k2;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
import org.jetbrains.kotlin.checkers.AbstractJavaAgainstKotlinSourceCheckerTest;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("code-insight/kotlin.code-insight.k2")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public abstract class K2JavaAgainstKotlinSourceCheckerTestGenerated extends AbstractJavaAgainstKotlinSourceCheckerTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin")
    public static class JavaAgainstKotlin extends AbstractJavaAgainstKotlinSourceCheckerTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
        }

        @TestMetadata("AssignKotlinClassToObjectInJava.kt")
        public void testAssignKotlinClassToObjectInJava() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/AssignKotlinClassToObjectInJava.kt");
        }

        @TestMetadata("AssignMappedKotlinType.kt")
        public void testAssignMappedKotlinType() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/AssignMappedKotlinType.kt");
        }

        @TestMetadata("ClassObjects.kt")
        public void testClassObjects() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ClassObjects.kt");
        }

        @TestMetadata("EnumAutoGeneratedMethods.kt")
        public void testEnumAutoGeneratedMethods() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/EnumAutoGeneratedMethods.kt");
        }

        @TestMetadata("EnumEntriesInSwitch.kt")
        public void testEnumEntriesInSwitch() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/EnumEntriesInSwitch.kt");
        }

        @TestMetadata("EnumStaticImportInJava.kt")
        public void testEnumStaticImportInJava() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/EnumStaticImportInJava.kt");
        }

        @TestMetadata("ExtendClassWithDefaultImplementationComplex.kt")
        public void testExtendClassWithDefaultImplementationComplex() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithDefaultImplementationComplex.kt");
        }

        @TestMetadata("ExtendClassWithDefaultImplementation_1_6.kt")
        public void testExtendClassWithDefaultImplementation_1_6() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithDefaultImplementation_1_6.kt");
        }

        @TestMetadata("ExtendClassWithDefaultImplementation_1_8.kt")
        public void testExtendClassWithDefaultImplementation_1_8() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithDefaultImplementation_1_8.kt");
        }

        @TestMetadata("ExtendInterfaceWithAJvmStaticMethodInCompanion.kt")
        public void testExtendInterfaceWithAJvmStaticMethodInCompanion() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithAJvmStaticMethodInCompanion.kt");
        }

        @TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt")
        public void testExtendInterfaceWithDefaultMethodAndCompatibilityAll() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAll.kt");
        }

        @TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt")
        public void testExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityAllCompatibility.kt");
        }

        @TestMetadata("ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt")
        public void testExtendInterfaceWithDefaultMethodAndCompatibilityDisabled() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendInterfaceWithDefaultMethodAndCompatibilityDisabled.kt");
        }

        @TestMetadata("ExtendingMutableInterfaces.kt")
        public void testExtendingMutableInterfaces() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendingMutableInterfaces.kt");
        }

        @TestMetadata("ExtendingReadOnlyInterfaces.kt")
        public void testExtendingReadOnlyInterfaces() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendingReadOnlyInterfaces.kt");
        }

        @TestMetadata("FlexibleTypes.kt")
        public void testFlexibleTypes() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/FlexibleTypes.kt");
        }

        @TestMetadata("FunctionInNestedClassInDataFlowInspection.kt")
        public void testFunctionInNestedClassInDataFlowInspection() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/FunctionInNestedClassInDataFlowInspection.kt");
        }

        @TestMetadata("ImplementedMethodsFromInterfaces.kt")
        public void testImplementedMethodsFromInterfaces() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ImplementedMethodsFromInterfaces.kt");
        }

        @TestMetadata("InferenceReturnType_1_6.kt")
        public void testInferenceReturnType_1_6() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/InferenceReturnType_1_6.kt");
        }

        @TestMetadata("InferenceReturnType_1_8.kt")
        public void testInferenceReturnType_1_8() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/InferenceReturnType_1_8.kt");
        }

        @TestMetadata("Interface.kt")
        public void testInterface() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/Interface.kt");
        }

        @TestMetadata("InterfaceDefaultImpls.kt")
        public void testInterfaceDefaultImpls() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/InterfaceDefaultImpls.kt");
        }

        @TestMetadata("InterfaceWithJvmStatic.kt")
        public void testInterfaceWithJvmStatic() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/InterfaceWithJvmStatic.kt");
        }

        @TestMetadata("JvmOverloadsFunctions.kt")
        public void testJvmOverloadsFunctions() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/JvmOverloadsFunctions.kt");
        }

        @TestMetadata("KotlinAnnotations.kt")
        public void testKotlinAnnotations() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/KotlinAnnotations.kt");
        }

        @TestMetadata("MyFunctionType.kt")
        public void testMyFunctionType() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/MyFunctionType.kt");
        }

        @TestMetadata("OverridesAmbiguity.kt")
        public void testOverridesAmbiguity() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/OverridesAmbiguity.kt");
        }

        @TestMetadata("ReturnInnerClasses.kt")
        public void testReturnInnerClasses() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ReturnInnerClasses.kt");
        }

        @TestMetadata("ThrowsOnGenericMethod.kt")
        public void testThrowsOnGenericMethod() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/ThrowsOnGenericMethod.kt");
        }

        @TestMetadata("TopLevelFunctionInDataFlowInspection.kt")
        public void testTopLevelFunctionInDataFlowInspection() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/TopLevelFunctionInDataFlowInspection.kt");
        }

        @TestMetadata("TopLevelFunctionWithNameSimilarToClassInDataFlowInspection.kt")
        public void testTopLevelFunctionWithNameSimilarToClassInDataFlowInspection() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/TopLevelFunctionWithNameSimilarToClassInDataFlowInspection.kt");
        }

        @TestMetadata("TopLevelFunctionWithNameSimilarToPropertyInDataFlowInspection.kt")
        public void testTopLevelFunctionWithNameSimilarToPropertyInDataFlowInspection() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/TopLevelFunctionWithNameSimilarToPropertyInDataFlowInspection.kt");
        }

        @TestMetadata("TopLevelOverloadedFunctionInDataFlowInspection.kt")
        public void testTopLevelOverloadedFunctionInDataFlowInspection() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/TopLevelOverloadedFunctionInDataFlowInspection.kt");
        }

        @TestMetadata("UseKotlinConstInSwitch.kt")
        public void testUseKotlinConstInSwitch() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/UseKotlinConstInSwitch.kt");
        }

        @TestMetadata("UseKotlinSubclassesOfMappedTypes.kt")
        public void testUseKotlinSubclassesOfMappedTypes() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/UseKotlinSubclassesOfMappedTypes.kt");
        }

        @TestMetadata("UsingKotlinPackageDeclarations.kt")
        public void testUsingKotlinPackageDeclarations() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/UsingKotlinPackageDeclarations.kt");
        }

        @TestMetadata("UsingMutableInterfaces.kt")
        public void testUsingMutableInterfaces() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/UsingMutableInterfaces.kt");
        }

        @TestMetadata("UsingReadOnlyInterfaces.kt")
        public void testUsingReadOnlyInterfaces() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaAgainstKotlin/UsingReadOnlyInterfaces.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/kotlinAndJavaChecker/javaWithKotlin")
    public static class JavaWithKotlin extends AbstractJavaAgainstKotlinSourceCheckerTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
        }

        @TestMetadata("InnerClassWithoutName.kt")
        public void testInnerClassWithoutName() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaWithKotlin/InnerClassWithoutName.kt");
        }

        @TestMetadata("JvmPackageNameFileFacade.kt")
        public void testJvmPackageNameFileFacade() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaWithKotlin/JvmPackageNameFileFacade.kt");
        }

        @TestMetadata("NoNotNullOnParameterInOverride.kt")
        public void testNoNotNullOnParameterInOverride() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaWithKotlin/NoNotNullOnParameterInOverride.kt");
        }

        @TestMetadata("OverrideInEnumEntry.kt")
        public void testOverrideInEnumEntry() throws Exception {
            runTest("../../idea/tests/testData/kotlinAndJavaChecker/javaWithKotlin/OverrideInEnumEntry.kt");
        }
    }
}
